package teste_uc;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import sun.org.mozilla.javascript.internal.ast.NewExpression;
import br.fatec.dominio.SGE_WEB;
import br.fatec.dominio.convenio.INMantemConvenio;
import br.fatec.dominio.convenio.INMantemConvenioImpl;
import br.fatec.dominio.empresa.Empresa;
import br.fatec.dominio.empresa.INMantemEmpresa;
import br.fatec.dominio.empresa.INMantemEmpresaImpl;
import br.fatec.dominio.estagio.INMantemEstagio;
import br.fatec.dominio.responsavel.INMantemResponsavel;
import br.fatec.dominio.responsavel.INMantemResponsavelImpl;
import br.fatec.servico.DAOFactory;
import br.fatec.servico.MySQLDAOFactory;
import br.fatec.servico.MySQLEmpresaDAO;
import br.fatec.servico.MySQLUsuarioDAO;
import br.fatec.servico.OracleSQLDAOFactory;
import br.fatec.servico.OracleSQLEmpresaDAO;

public class UC04AlterarEmpresa {

	INMantemEmpresa mantemEmpresa2; // configure build path - add um external
									// jar acha esta interface
	SGE_WEB sgeweb;
	INMantemEmpresa mantemEmpresa;
	INMantemConvenio mantemConvenio;
	INMantemResponsavel mantemResponsavel;
	INMantemEstagio mantemEstagio;
	Empresa empresa;

	@Before
	public void setUp() throws Exception {
		mantemEmpresa = new INMantemEmpresaImpl();
		mantemConvenio = new INMantemConvenioImpl();
		mantemResponsavel = new INMantemResponsavelImpl();
		sgeweb = new SGE_WEB(mantemEmpresa, mantemConvenio, mantemResponsavel, mantemEstagio);
	}

	@After
	public void tearDown() throws Exception {
		MySQLEmpresaDAO empresaDAO = new MySQLEmpresaDAO();
		// OracleSQLEmpresaDAO empresaDAO = new OracleSQLEmpresaDAO();
		empresaDAO.exclui("14.572.457.0001-85");
	}

	@Test
	public final void CT01Valida_getEmpresaDAO() {
		assertTrue(DAOFactory.getDAOFactory(DAOFactory.MYSQL).getEmpresaDAO() instanceof MySQLEmpresaDAO);
		// assertTrue(DAOFactory.getDAOFactory(DAOFactory.ORACLE).getEmpresaDAO()
		// instanceof OracleSQLEmpresaDAO);

	}

	@Test
	public final void CT02ValidaConexao_com_sucesso() {
		assertNotNull("valida a conexao =>", MySQLDAOFactory.criaConexao());
		// assertNotNull("valida a conexao =>",
		// OracleSQLDAOFactory.criaConexao());
	}

	@Test
	public final void CT03UC01FBCadastraEmpresa_com_sucesso() {
		try {
			assertEquals("CADASTRO REALIZADO COM SUCESSO",
					sgeweb.cadastraEmpresa("14.572.457.0001-85",
							"International Business Machines", "IBM",
							"Rua da IBM", "552", "Vila IBM", "bloco 2", "1",
							"2651-8758"));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Test
	public final void CT04UC02FBConsultaEmpresa_com_sucesso() {
		try {
			assertEquals(empresa,
					sgeweb.consultaEmpresaCNPJ("14.572.457.0001-85"));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public final void CT05UC01FBAlteraEmpresa_com_sucesso() {
		try {
			assertEquals("EMPRESA EDITADA COM SUCESSO",
					sgeweb.alteraEmpresa("14.572.457.0001-85",
							"International Business Machines", "IBM",
							"Rua da IBM", "5523", "Vila", "bloco 2", "1",
							"2651-8758"));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
